#ifndef HEAP_SORT
#define HEAP_SORT

#include <vector>
#include <cmath>

using namespace std;

class HeapSort
{
public:
	HeapSort(void);
	~HeapSort(void);
	void doMaxHeapify(vector<int> &A, int i);
	void doBuildMaxHeap(vector<int> &A);
	void doHeapSort(vector<int> &A);
	int getChildIndex(int i);
	void doSwap(vector<int> &A, int up, int down);
	int heapSize;
};

#endif